

// // 用户表
// export const users = mysqlTable('users', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   name: varchar('name', { length: 100 }).notNull(),
//   userId: varchar('user_id', { length: 50 }).notNull(),
//   orgId: varchar('org_id', { length: 50 }).notNull(),
//   orgName: varchar('org_name', { length: 50 }).notNull(),
//   email: varchar('email', { length: 100 }).notNull().unique(),
//   password: varchar('password', { length: 100 }).notNull(),
//   role: mysqlEnum('role', ['admin', 'user']).notNull().default('user'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 报销主题表
// export const expenseThemes = mysqlTable('expense_themes', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   title: varchar('title', { length: 100 }).notNull(),
//   description: varchar('description', { length: 500 }),
//   userId: varchar('user_id', { length: 50 }).notNull(),
//   oa: varchar('oa', { length: 50 }).default(''),
//   amount: decimal('amount', { precision: 10, scale: 2 }).notNull(),
//   status: mysqlEnum('status', ['active', 'closed']).notNull().default('active'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 报销主题参与者表
// export const expenseThemeParticipants = mysqlTable('expense_theme_participants', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   themeSerialNo: varchar('theme_serial_no', { length: 50 }).notNull(),
//   userId: varchar('user_id', { length: 50 }).notNull(),
//   role: mysqlEnum('role', ['admin', 'contributor', 'proxy']).notNull().default('contributor'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 发票表
// export const receipts = mysqlTable('receipts', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   themeSerialNo: varchar('theme_serial_no', { length: 50 }).notNull(),
//   userId: varchar('user_id', { length: 50 }).notNull(),
//   amount: decimal('amount', { precision: 10, scale: 2 }).notNull(),
//   date: varchar('date', { length: 50 }).notNull(),
//   vendor: varchar('vendor', { length: 100 }),
//   buyer: varchar('buyer', { length: 100 }),
//   receiptType: mysqlEnum('receipt_type', ['plain', 'train', 'vat', 'document']).notNull(),
//   feeType: mysqlEnum('fee_type', ['交通费', '通讯费', '住宿费', '餐饮费', '其他']).notNull(),
//   category: varchar('category', { length: 100 }),
//   notes: varchar('notes', { length: 500 }),
//   status: mysqlEnum('status', ['已上传', '已确认', '已报销', '已作废']).notNull().default('已上传'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 附件表
// export const attachments = mysqlTable('attachments', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   receiptSerialNo: varchar('receipt_serial_no', { length: 50 }).notNull(),
//   fileName: varchar('file_name', { length: 100 }).notNull(),
//   fileType: mysqlEnum('file_type', ['main', 'attachment']).notNull(),
//   fileSize: int('file_size').notNull(),
//   filePath: varchar('file_path', { length: 500 }).notNull(),
//   storageUrl: varchar('storage_url', { length: 500 }).notNull(),
//   storageType: mysqlEnum('storage_type', ['oss', 's3']),
//   storageName: varchar('storage_name', { length: 100 }),
//   oriStorageName: varchar('ori_storage_name', { length: 100 }),
//   StorageBucket: varchar('storage_bucket', { length: 100 }),
//   isReceipt: boolean('is_receipt').notNull().default(false),
//   ocrProcessed: boolean('ocr_processed').notNull().default(false),
//   ocrData: json('ocr_data'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 签名表
// export const signatures = mysqlTable('signatures', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull(),
//   themeSerialNo: varchar('theme_serial_no', { length: 50 }).notNull(),
//   userId: varchar('user_id', { length: 50 }).notNull(),
//   signatureData: longtext('signature_data').notNull(),
//   signatureDate: datetime('signature_date').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 打印任务表
// export const printJobs = mysqlTable('print_jobs', {
//   serialNo: varchar('serial_no', { length: 50 }).notNull().primaryKey(),
//   themeSerialNo: varchar('theme_serial_no', { length: 50 }).notNull(),
//   createdById: varchar('created_by_id', { length: 50 }).notNull(),
//   receiptIds: json('receipt_ids').notNull(), // 存储为JSON数组
//   printTemplate: varchar('print_template', { length: 100 }).notNull(),
//   status: mysqlEnum('status', ['pending', 'completed']).notNull().default('pending'),
//   version: int('version').notNull(),
//   remark: varchar('remark', { length: 255 }).notNull(),
//   updateUserId: varchar('update_user_id', { length: 50 }).notNull(),
//   createUserId: varchar('create_user_id', { length: 50 }).notNull(),
//   createTime: datetime('create_time').default(sql`CURRENT_TIMESTAMP`),
//   updateTime: datetime('update_time').default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => getLocalDateTime()),
// });

// // 类型定义
// export type User = typeof users.$inferSelect;
// export type NewUser = typeof users.$inferInsert;

// export type ExpenseTheme = typeof expenseThemes.$inferSelect;
// export type NewExpenseTheme = typeof expenseThemes.$inferInsert;

// export type ExpenseThemeParticipant = typeof expenseThemeParticipants.$inferSelect;
// export type NewExpenseThemeParticipant = typeof expenseThemeParticipants.$inferInsert;

// export type Receipt = typeof receipts.$inferSelect;
// export type NewReceipt = typeof receipts.$inferInsert;

// export type Attachment = typeof attachments.$inferSelect;
// export type NewAttachment = typeof attachments.$inferInsert;

// export type Signature = typeof signatures.$inferSelect;
// export type NewSignature = typeof signatures.$inferInsert;

// export type PrintJob = typeof printJobs.$inferSelect;
// export type NewPrintJob = typeof printJobs.$inferInsert;

// function mysqlTable(arg0: string, arg1: { serialNo: any; name: any; userId: any; orgId: any; orgName: any; email: any; password: any; role: any; version: any; remark: any; updateUserId: any; createUserId: any; createTime: any; updateTime: any; }) {
//   throw new Error("Function not implemented.");
// }
